package edu.pku.sei.act.model.mote;

import edu.pku.sei.act.model.common.ArchiModelConst;
import edu.pku.sei.act.mote.myenum.TypeEnum;
import edu.pku.sei.act.mote.myenum.VisibilityEnum;
import edu.pku.sei.act.mote.myenum.YNEnum;
import edu.pku.sei.gmp.model.concept.GMPModelElement;
import edu.pku.sei.gmp.properties.annotation.GMPAnnotation;
import edu.pku.sei.gmp.properties.annotation.GMPEnumAnnotation;

public class DataItem extends GMPModelElement {

	@GMPAnnotation(
			id = "edu.pku.sei.act.model.data.dataItem.variable",
			name = ArchiModelConst.DATA_VARIABLE,
			category = "Property",
			getter = "getVariable",
			setter = "setVariable",
			visible = true,
			serialize = true
			)
	private String variable;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.data.dataItem.varValue",
			name = ArchiModelConst.DATA_VARVALUE,
			category = "Property",
			getter = "getVarValue",
			setter = "setVarValue",
			visible = true,
			serialize = true
			)
	private String varValue;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.data.dataItem.visibility",
			name = ArchiModelConst.DATA_VISIBILITY,
			category = "Property",
			getter = "getVisibility",
			setter = "setVisibility",
			visible = true,
			serialize = true
			)
    @GMPEnumAnnotation()
			private VisibilityEnum visibility;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.data.dataItem.type",
			name = ArchiModelConst.DATA_TYPE,
			category = "Property",
			getter = "getType",
			setter = "setType",
			visible = true,
			serialize = true
			)
    @GMPEnumAnnotation()
			private TypeEnum type;
	
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.data.dataItem.isStatic",
			name = ArchiModelConst.DATA_ISSTATIC,
			category = "Property",
			getter = "getIsStatic",
			setter = "setIsStactic",
			visible = true,
			serialize = true
			)
    @GMPEnumAnnotation()
			private YNEnum isStatic;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.data.dataItem.isFinal",
			name = ArchiModelConst.DATA_ISFINAL,
			category = "Property",
			getter = "getIsFinal",
			setter = "setIsFinal",
			visible = true,
			serialize = true
			)
    @GMPEnumAnnotation()
			private YNEnum isFinal;
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.data.dataItem.hasInitialValue",
			name = ArchiModelConst.DATA_HASINITIALVALUE,
			category = "Property",
			getter = "getHasInitialValue",
			setter = "setHasInitialValue",
			visible = true,
			serialize = true
			)
    @GMPEnumAnnotation()
			private YNEnum hasInitialValue;
	
	public String getVariable() {
		return variable;
	}
	
	public void setVariable(String variable) {
		this.variable = variable;
	}
	
	public String getVarValue() {
		return varValue;
	}
	
	public void setVarValue(String varValue) {
		this.varValue = varValue;
	}
	
	public VisibilityEnum getVisibility() {
		return visibility;
	}
	
	public void setVisibility(VisibilityEnum visibility) {
		this.visibility = visibility;
	}
	
	public TypeEnum getType(){
		return type;
	}
	
	public void setType(TypeEnum type){
		this.type = type;
	}
	
	public YNEnum getIsStatic(){
		return isStatic;
	}
	
	public void setIsStatic(YNEnum isStatic){
		this.isStatic = isStatic;
	}
	
	public YNEnum getIsFinal(){
		return isFinal;
	}
	
	public void setIsFinal(YNEnum isFinal){
		this.isFinal = isFinal;
	}
	
	public YNEnum getHasInitialValue(){
		return hasInitialValue;
	}
	
	public void setHasInitialValue(YNEnum hasInitialValue){
		this.hasInitialValue = hasInitialValue;
	}

}